說明:
實作一個範例,在API的請求中帶入兩個參數A、B,而API回傳時返回A、B兩數的最大公因數。
在以下實作將建立一個Controller Class且於類別內定義指定的方法並搭配Postman發起API請求以及接收回傳內容。
範例程式如下:
@RestController //Step1.
@RequestMapping("/Controller") //Step2.
public class ExampleController {
@Autowired
public ExampleService exampleService;
@RequestMapping(value = "/highestCommonFactor", method = {RequestMethod.GET}) //Step3.
@ResponseBody
//Step4.
public String calculHighestCommonFactor
//Step5.
(@RequestParam(value = "A", required = true) int A,
@RequestParam(value = "B", required = true) int B)
{
int GCD = exampleService.getHighestCommonFactor(A, B); //Step6.
return "最大公因數 = " + GCD; //Step7.
}
}
Step1. 要想在程式內提供 RESTful Web 服務,需先於類別上加入 @RestController
的註解。
Step2. 承如先前的介紹,我們可以在類別上加上 @RequestMapping
的註解。
假設在 Application 內存在多個 Controller ,且在不同的 Controller 下會有多個接收請求的方法,而有些方法可能都在處理類似的請求, 在此情況下如果設定了同個路徑名稱,就會違反了該路徑在全局的唯一性。此時,如果在類別上添加 @RequestMapping
的註解並且給予不同的父路徑, 就可以很好的解決此問題的發生。
Step3. 定義方法的路徑以及可接受的請求方法,這邊實作GET方法。
Step4. 定義實作方法的名稱。
Step5. 定義所接收的參數。
Step6. 當收到請求後,將透過業務邏輯層 @Server
針對請求的資料進行處理。
Step7. 最後返回業務邏輯層處理後的結果。
當我們把程式Run起來後,可以利用Postman發起 API 請求,結果如下圖:
假設我們換不同的請求方法發起 API ,會發生HTTP 405 的錯誤,結果如下圖:
這是因為此支 API 當初在設計時並不支援 POST 方法所以如果想要透過POST將請求送到此API,需要在 method 屬性內加入接受的請求方法。